草庐IT

javascript - 用 let 重新分配 javascript

全部标签

ruby - 有没有办法用内存分配报告来分析 ruby​​ 1.9.2 脚本?

我的ruby​​应用程序遇到了瓶颈,但我无法弄清楚它在哪里变慢了。我找到了memprof,但它不支持1.9。我还发现ruby​​-prof似乎在1.9.2上运行良好,但内存分配需要修补的ruby​​解释器,我只能找到ruby​​1.8的补丁。是否有ruby​​分析器可以完成这项工作? 最佳答案 您是否尝试过分析GC?Ruby1.9.2包括GC::Profiler。GC::Profiler.enableGC.startputsGC::Profiler.report您可能还想查看ObjectSpace.count_objects。

ruby - 将 ruby​​ 数组用于 erb 中的 javascript 数组。转义引号

我在网上找到了很多这方面的东西,但它们对我不起作用。我错过了什么吗?在我的Controller中我有@t=["a","b","c"]在作为“回调”的erb文件中,@t呈现如下:["a","b","c"]我做了一些技巧来将"替换为正确的'符号。我读过to_json应该可以工作,但它没有。下面的代码不起作用["a","b","c"].to_json。结果是一样的。 最佳答案 to_json工作正常。您遇到的是Rails3.x的XSS保护。在Railscasts上有一篇关于此的好

ruby-on-rails - 在 RoR 中的何处重新上课

我试图在Rails中重新打开String类并添加更多方法供我的应用程序使用。编写代码不是问题-我的问题是这段代码应该放在哪里。在不同的模型文件中重新打开一个类对我来说没有意义,因为它实际上与任何模型都没有任何关系。我想也许config或lib中的某处是有意义的,但我还不是特别精通RoR。总而言之,定义类修改代码的最合乎逻辑的位置在哪里,根据加载代码的位置/时间是否有任何影响? 最佳答案 最合乎逻辑的地方可能是config/initializers目录中的一个文件。您放入此处的任何*.rb文件都会在Rails启动时自动执行。如果需要,

ruby - Mac OSX Lion 和 Ruby - [致命] 分配内存失败

我在使用Ruby和OSXLion时遇到严重问题-每当我尝试启动Rails或什至是rake工具时,我都会收到此错误:[FATAL]failedtoallocatememory我尝试在不同版本(1.9.2-p180、1.9.2-p290、1.9.2-head)中重新编译ruby​​,但它总是一样。但是我注意到我可以删除一些gems,然后“rake”工具会起作用,只有“railss”会因该错误而死掉。似乎实际上没有足够的内存来容纳我正在使用的这么多gem,但这又一次看起来很奇怪——它在雪豹上工作得很好,甚至在我公司的macmini上和Lion上工作——唯一的区别是mini升级了SnowLeo

ruby - Ruby 中的循环分配

我有Enquiry和Consellor模型。我想以循环方式将查询分配给辅导员。如果有3个顾问和5个询问,那么分配应该是:Enquiry1=>C1,Enquiry2=>C2,Enquiry3=>C3,Enquiry4=>C1,Enquiry5=>C2我可以通过查询数据库并通过缓存进行优化来做到这一点,但正在寻找更好的解决方案。 最佳答案 Array#cycle(无限枚举器)很适合这个:counselors=%w(C1C2C3).cycleenquiries=Array.new(5){|i|"Enquiry#{(i+1).to_s}"}

Ruby 对象字面量(ala javascript)

在ruby中你可以去a={}a['a']=82a['b']='foo'putsa['a']#82我希望我可以使用点符号,例如javascript。将a.a#82有没有办法在ruby​​中构建对象文字并使用点表示法访问它们? 最佳答案 您可以创建一个Struct.A=Struct.new(:a,:b)a=A.new(82,'foo')putsa.a#=>82编辑:你甚至可以做到a={}a['a']=82a['b']='foo'Struct.new(*a.keys).new(*a.values)

ruby - 如何根据订单快速重新排序 Ruby 数组?

我有一个值数组和一个确定顺序的数组。如何按给定顺序快速重新排列数组?data=['0','1','2','3','4','5']order=[3,1,2,0,4,5]我要:data=['3','1','2','0','4','5'] 最佳答案 您可以使用values_at为此类任务编写的方法:data=['0','1','2','3','4','5']order=[3,1,2,0,4,5]data.values_at*order#=>["3","1","2","0","4","5"] 关

ruby-on-rails - 启动或确保延迟作业在应用程序/服务器重新启动时运行

我们必须使用delayed_job(或其他一些后台作业处理器)在后台运行作业,但我们不允许更改服务器上的启动脚本/启动级别。这意味着如果提供程序重新启动服务器,则不能保证守护进程保持可用(因为守护进程将由每次部署仅运行一次的capistrano配方启动)。目前,我能想到的确保delayed_job守护进程始终运行的最佳方法是向我们的Rails应用程序添加一个初始化程序,以检查守护进程是否正在运行。如果它没有运行,那么初始化器会启动守护进程,否则,它就让它保持运行。因此,问题是我们如何检测Delayed_Job守护程序是否在脚本内部运行?(我们应该能够很容易地启动一个守护进程,但我不知道

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript

似乎Selenium有一个名为JavascriptExecutor的功能,它可以直接在页面上执行JavaScript。然而,我的Cucumber/Capybara测试似乎没有这样的东西。如何从我的Cucumber测试中执行任意JavaScript? 最佳答案 Capybara有两种执行javascript的方法#execute_script和#evaluate_script。两者都可以在以下位置找到:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Seleni

Ruby - 覆盖/启用多重分配(例如 `a, b, c = d, e, f` )

在ruby中,你可以这样做:d=[1,2,3]a,b,c=da、b和c将分别接收值1、2和3。d,在本例中是一个Array,ruby知道将其内容分配给a、b,和c。但是,如果d是一个Fixnum,例如,只有a会被分配给d的值,而b和c将被分配nil。d的哪些属性允许它用于多重赋值?到目前为止,在我的探索中,我只能使Array的子类实例以这种方式运行。 最佳答案 这是一个非常没有文档记录的功能,我会谨慎使用它,但我们开始吧。摘自《TheRubyProgrammingLanguage》一书:Whentherearemultiplelva